Automatically maintaining metadata in a file backup system

ABSTRACT

A technology for automatically saving an original copy of an image file in a location hidden from a user is disclosed. The technology accesses metadata associated with an image file and determines whether an original copy of the image file exists. Provided an original copy of the image file exists, an edited version of the image file along with an identifier is saved. If an original copy of the image file does not exist, an original copy of the image file is created, the original copy of the image file is stored, and an edited version of the image file along with an identifier is saved.

BACKGROUND

Computing devices usually allow users to alter files, such as image,video, and audio files, by allowing users to edit image/video/audiofiles. For example, while editing an image, a user is often allowed toprovide inputs to control an image's color vividness, brightness,contrast, and/or other types of editing parameters. In addition,traditionally users are able to label, flag, and/or captionimages/videos during editing.

Unfortunately, it may take several iterations of editing in order forthe user to be satisfied with the appearance, or quality of theimage/video/audio. This generally results in either having to savechanges over the original image/video, or having to save multipleversions of the image/video. However, the problem presented by theexample of saving changes over the original image/video file is that itmay be difficult to get back to the original image/video if the userlater decides that he/she does not like the changes/edits that have beenmade.

On the other hand, the scenario of saving multiple version of theimage/video/audio may quickly become confusing and problematic withnumerous saved edited versions of the original image/video. Furthermore,the problem may be exacerbated if there is more than one originalimage/video/audio to work with and if there is more than one useraccessing the same images and/or videos.

SUMMARY

A technology for automatically saving an original copy of an image filein a location hidden from a user is disclosed. The technology accessesmetadata associated with an image file and determines whether anoriginal copy of the image file exists. Provided an original copy of theimage file exists, an edited version of the image file along with anidentifier is saved. If an original copy of the image file does notexist, an original copy of the image file is created, the original copyof the image file is stored, and an edited version of the image filealong with an identifier is saved.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and form a part ofthis specification, illustrate embodiments of the present claimedsubject matter and, together with the description, serve to explain theprinciples of the claimed subject matter:

FIG. 1 is a block diagram illustrating an exemplary system ofautomatically saving an original copy of an image file on a per userbasis on a computing device, in accordance with an embodiment of thepresent claimed subject matter.

FIG. 2 is a block diagram illustrating an exemplary system ofautomatically saving an original copy of an image file on a per userbasis across a network, in accordance with an embodiment of the presentclaimed subject matter.

FIG. 3 is a block diagram illustrating an exemplary system ofautomatically saving an original copy of an image file on a percomputing device basis across a network, in accordance with anembodiment of the present claimed subject matter.

FIG. 4 is a block diagram illustrating a plurality of edited versions ofan image file with identifiers which point to an original copy of theimage file, in accordance with an embodiment of the present claimedsubject matter.

FIG. 5 illustrates an exemplary edited version of an image beingreverted to an original copy of an image, in accordance with anembodiment of the present claimed subject matter.

FIG. 6 illustrates creating a duplicated edited image file and creatinga reverted file, in accordance with an embodiment of the present claimedsubject matter.

FIG. 7A is a flowchart illustrating an exemplary method of automaticallysaving an original copy of an image file, in accordance with anembodiment of the present claimed subject matter.

FIG. 7B is a flowchart illustrating an exemplary method of reverting anedited image to an original image as depicted a block of FIG. 7, inaccordance with an embodiment of the present claimed subject matter.

FIG. 8 it flowchart illustrating an exemplary method of reverting anedited version of a video to an original copy of a video, in accordancewith an embodiment of the present claimed subject matter.

FIG. 9 illustrates an exemplary system for implementing the claimedsubject matter, in accordance with an embodiment of the present claimedsubject matter.

DETAILED DESCRIPTION

Reference will now be made in detail to the preferred embodiments of thepresent claimed subject matter, examples of which are illustrated in theaccompanying drawings. While the claimed subject matter will bedescribed in conjunction with the preferred embodiments, it will beunderstood that they are not intended to limit the claimed subjectmatter to these embodiments. On the contrary, the claimed subject matteris intended to cover alternatives, modifications and equivalents, whichmay be included within the spirit and scope of the claimed subjectmatter as defined by the claims. Furthermore, in the detaileddescription of the present claimed subject matter, numerous specificdetails are set forth in order to provide a thorough understanding ofthe present claimed subject matter. However, it will be obvious to oneof ordinary skill in the art that the present claimed subject matter maybe practiced without these specific details. In other instances, wellknown methods, procedures, components, and circuits have not beendescribed in detail as not to unnecessarily obscure aspects of thepresent claimed subject matter.

Some portions of the detailed descriptions that follow are presented interms of procedures, logic blocks, processing, and other symbolicrepresentations of operations on data bits within a computer or digitalsystem memory. These descriptions and representations are the means usedby those skilled in the data processing arts to most effectively conveythe substance of their work to others skilled in the art. A procedure,logic block, process, etc., is herein, and generally, conceived to be aself-consistent sequence of steps or instructions leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these physicalmanipulations take the form of electrical or magnetic signals capable ofbeing stored, transferred, combined, compared, and otherwise manipulatedin a computer system or similar electronic computing device. For reasonsof convenience, and with reference to common usage, these signals arereferred to as bits, values, elements, symbols, characters, terms,numbers, or the like with reference to the present claimed subjectmatter.

It should be borne in mind, however, that all of these terms are to beinterpreted as referencing physical manipulations and quantities and aremerely convenient labels and are to be interpreted further in view ofterms commonly used in the art. Unless specifically stated otherwise asapparent from the discussion herein, it is understood that throughoutdiscussions of the present embodiment, discussions utilizing terms suchas “determining” or “outputting” or “transmitting” or “recording” or“locating” or “storing” or “displaying” or “receiving” or “recognizing”or “utilizing” or “generating” or “providing” or “accessing” or“checking” or “notifying” or “delivering” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data. The data isrepresented as physical (electronic) quantities within the computersystem's registers and memories and is transformed into other datasimilarly represented as physical quantities within the computer systemmemories or registers or other such information storage, transmission,or display devices.

In overview, embodiments of the present claimed subject matter providemethods and systems for automatically saving an original copy of animage file and/or a video file in a location hidden from a user. Morespecifically, the embodiments of the present claimed subject matterallow the user to make various edits to an image file and/or a videofile without having to worry about saving a copy of the pre-editedimage/video file (also referred to as a pre-edited file, or an originalcopy of an image/video file) since a copy of the pre-edited image/videofile is automatically saved in a location hidden from the user uponsaving an edit. In one embodiment, the method of restoring a pre-editedfile allows the newly restored file to retain metadata that has beenadded by the user to edited versions since the original copy of the filewas created. Moreover, embodiments of the present claimed subject mattermay be configured to automatically delete the pre-edited file based on auser-defined specification. For example, in one embodiment, the systemmay be configured to not keep a pre-edited file over five months.

In addition, the method or system for automatically saving an originalcopy of an image file and/or a video file may be implemented in variousways, including, but not limited to, saving an original copy of an imagefile on a computing device, saving an original copy of an image file ona computing device on a per user basis, or saving an original copy of animage file on a network on a per user basis. Saving an original copy ofa file on a computing device on a per user basis means that each userhas access to an individualized set of files. For example, in thecontext of a single computing device (e.g., FIG. 1) it may be determinedthat there is an original copy of an image file for one user, while itmay be determined that there is not an original copy of that same imagefile for another user. In another example, still in the same context ofa single computing device and a per user basis, there may be 2 originalcopies of a video for two individual users on a computing device, but itmay be determined that there is not an original copy of the same videofor a third user. In addition, this example can be readily extended tothe context of a network of computers.

In some instances, embodiments of the present claimed subject matteralso includes reverting an edited image (also referred to as an editedversion of an image) to an original copy of an image, or reverting anedited video (also referred to as an edited version of a video) to anoriginal copy of a video. If desired, metadata deltas (also referred toas metadata) and file name associated with the edited image/video may beretained to a reverted image/video (also referred to as a revertedversion of an image/video). For example, a caption added during an editmay be retained in the reverted image file even if the edited image isreverted to the original image.

In other instances, embodiments of the present claimed subject matterfurther includes creating a duplicate of an edited image/video file (oredited image/video), while reverting the edited image/video file fromwhich the duplicate was created, so that a reverted file and aduplicated edited file results. In one example, the distinction betweena duplicated edited file and a reverted file exists because theduplicated edited file is a file that contains the edited image and themetadata associated with the edited image file, while the reverted fileis a file that contains an original image and metadata associated withthe edited image file.

Further, in the present claimed subject matter, the term image filerefers to a file containing an image, while the term image, when usedwithout the term “file,” refers to the actual image within a file.Similarly, the term video file refers to a file containing that video,while the term video, when used without the term “file,” refers to theactual video within a file. To illustrate, in the context in which auser desires to work with both an edited image file containing thelatest edited image and its associated metadata and a reverted imagefile containing the original image and metadata associated with thelatest edited file, an edited image file may be duplicated to form aduplicated edited file, while only an edited image itself is revertedback into an original image so that the latest metadata remains and isnot reverted.

FIG. 1 is a block diagram illustrating an exemplary system 100 ofautomatically saving an original copy of an image file on a per userbasis on a computing device, in accordance with an embodiment of thepresent claimed subject matter. As depicted in FIG. 1, the exemplarysystem 100 includes a user 108, and a computing device 102 (illustratedas PC 102). As depicted, the computing device 102 includes an originalimage file 104 and an edited image file 106. Although system 100 isshown and described as having certain numbers and types of elements, thepresent embodiment is not so limited; that is, system 100 may includeelements other than the shown, and may also include more than one of theelements that are shown.

Still referring to system 100 of FIG. 1, the user 108 may be, but is notlimited to, an end user, individual user device, or a computer program.There may also be more than one user. The computing device 102 may be,but is not limited to, a desktop computer, a notebook computer, or apersonal digital assistant (PDA).

In reference to FIG. 1, the present embodiment is described in thecontext of an example in which automatically saving an original copy ofan image file is performed on a per user basis on a computing device.The present embodiment is further described in context of an example inwhich only one edited image file is saved. However, this example can bereadily extended to other situations and embodiments. For example, theremay be a multiple number of edited image files saved by the user 108. Inanother example, there may be more than one user with access to personalcomputer 102. As depicted by FIG. 1, computing device 102 is a personalcomputer which automatically saves an original copy of an image file(e.g., original image file 104) upon saving an edited image file (e.g.,edited image file 106) created by the user 108.

FIG. 2 is a block diagram illustrating an exemplary system 200 ofautomatically saving an original copy of an image file on a per userbasis across a network, in accordance with an embodiment of the presentclaimed subject matter. As depicted in FIG. 2, system 200 includes auser 214 connected to a computing device 202 (PC 202), which is furtherconnected to a computing device 212 (PC 212). PC 202 is also andconnected to a computing device 208 (PC 208) via a network 206. Asdepicted, PC 202 includes files 204 and PC 208 includes files 210.Although system 200 is shown and described as having certain numbers andtypes of elements, the present embodiment is not so limited; that is,system 200 may include elements other than those shown, and may includemore than one of the elements that are shown.

As depicted by system 200 of FIG. 2, network 206 is the datacommunication system that interconnects devices. A network can beimplemented in a wide variety of ways. For example, network 206 can beimplemented as, but is not limited to, a local area network (LAN), aMetropolitan area network (MAN), a wide area network (WAN), a storagearea network, and/or the Internet. In one embodiment, network 206 is awireless network. The user 214 may be, but is not limited to, an enduser, individual user device, or a computer program. There may also bemore than one user. Each of the computing devices 202, 208, and 212 maybe, but is not limited to, a desktop computer, a notebook computer, or aPDA. Files 204 and 210 are exemplary image and/or video files that areaccessed by the user 212.

Still in reference to FIG. 2, the present embodiment is described in thecontext of an example in which the method of automatically saving anoriginal copy of an image file is performed on a per user basis across anetwork. In one embodiment, saving an original copy of an image file ona per user basis across a network means that for each specific user,means that for that network there is a file access specific to thatparticular user. For example, as depicted in FIG. 2, in one embodiment,a user 212 may access both image files 204 of PC 202 and image files 210of PC 208 for editing. In another example, the user 214 may access andedit image files of only one computing device (e.g., PC 212). In yetanother example, a user may edit an image file on PC 202, while editingtwo video files on another computing device (e.g., PC 208).

Referring now to FIG. 3, a block diagram of an exemplary system 300 ofautomatically saving an original copy of an image file on a percomputing device basis across a network is illustrated, in accordancewith an embodiment of the present claimed subject matter. As depicted inFIG. 3, system 300 includes two users (310 and 320, respectively)connected to computing devices 302 and 314, respectively (PC 1 and PC 2,respectively). In turn, in the embodiment depicted, PC 1 and PC 2 areconnected via network 312. As depicted, PC I includes edited file 308,directory 304, and an original copy of a file (e.g., original 306). PC 2includes an edited file 318 (e.g., edited 318) and an original copy of afile 316 (e.g., original 2). Although system 300 is shown and describedas having certain numbers and types of elements, the present embodimentis not so limited; that is, system 300 may include elements other thanthose shown, and may include more than one of the elements that areshown.

In one embodiment, an original copy of a file (original 306) iscontained within a directory (e.g., directory 304). In this embodiment,original 306 is an original copy of an image or video file stored withinthe directory 304. A directory can be a directory in which all originalcopies of files (whether image or video) may be stored (such a directorymay be hereinafter referred to as an original directory). In addition,there could be more than one original directory on a computing devicefor different users. This means a directory may also be user specific.For example, on one computing device there could be three originaldirectories for use by three different users. Furthermore a directorymay be accessed by a user across a network.

Referring back to FIG. 3, as depicted, in one embodiment, user 310 isable to access an edited image/video file 308, which corresponds to anassociated original copy of an image/video file stored within originaldirectory 304. The user 320 is able to access an edited image/video file318 (e.g., edited 2), which corresponds to an associated original copyof an image/video file 316 (e.g., original 2). In another embodiment,still in the context in which the automatic saving of an original copyof an image file is performed on a per computing device basis across thenetwork, there may be more than one user that is able to access anedited file on a computing device. For example, in addition to user 310,there may be another user that is able to access edited image/video file308 and its corresponding associated original copy of an image/videofile stored within original directory 304. In one example, by allowingmore than one user to access the same files stored within a directory,the ability of a user to quickly pick up where the last user left offmay be enhanced.

FIG. 4 is a block diagram illustrating a plurality of edited versions ofan image file with identifiers which point to an original copy of theimage file, in accordance with an embodiment of the present claimedsubject matter. As depicted in FIG. 4, a plurality of edited versions ofan image file (edited version 402, edited version 404, and editedversion 406) all contain identifiers (identifier 408, identifier 410,and identifier 412, respectively) as part of their file. An identifierof an edited version of a file points to an original copy of that file(e.g., original version 414). In one embodiment, original version 414has a file name 416 which includes identifier 418. Furthermore, in oneembodiment, original version 414 is an original copy of the image fromwhich the edited versions (edited versions 402, 404, and 406) arederived. In one embodiment, the identifiers 408, 410 and 412 areassociated with the identifier 418, and thus allow edited version 402,404, and 406, respectively, to point to the original version 414. Also,although system 400 is shown and described as having certain numbers andtypes of elements, the present embodiment is not so limited; that is,system 400 may include elements other than those shown, and may includemore than one of the elements that are shown.

In reference to FIG. 5, an embodiment of exemplary image files duringdifferent stages of a revert process is depicted, in accordance with anembodiment of the present claimed subject matter. In one embodiment, anoriginal copy of a file (depicted as original file 502) is edited,resulting in an edited version of an image file (depicted as edited file504). Furthermore, the edited version of an image (depicted as editedimage 510) of edited file 504 is reverted to an original copy of animage (e.g., original image 508) while the metadata (metadata 514, alsoreferred to as metadata deltas) associated with the edited file 504 iskept in the resulting reverted file 506. As depicted in FIG. 5, metadata514 includes an identifier 516, which is associated with an originalcopy of that file. In another embodiment, metadata associated with anedited file may include, but is not limited to, labels, captions, andflags added by a user during an edit.

Referring back now to FIG. 5, in one embodiment, when the edited file504 is reverted, the resulting reverted file 506 contains the originalimage 508 and metadata 514, which contains identifier 516. However, areverted file does not have to include metadata from previous edits. Forexample, in another embodiment, the reverted file may not retainmetadata from the edited file. In yet another embodiment, it may be avideo file that is reverted, resulting in either a reverted video filewith metadata from the last edit, or a reverted video file withoutmetadata from the last edit. Although system 500 is shown and describedas having certain numbers and types of elements, the present embodimentis not so limited; that is, system 500 may include elements other thanthose shown, and may include more than one of the elements that areshown.

FIG. 6 depicts exemplary image files during different stages of aduplication process and a revert process, in accordance with anembodiment of the present claimed subject matter. As depicted, in oneembodiment, original file 602 with original image 610 is edited,resulting in an edited file 604 with an edited image 612 and metadata616 containing a globally unique identifier (e.g., GUID 618). Asdepicted by FIG. 6, in one embodiment, the edited file 604 is thenduplicated to form a separate duplicated edited file 614, which is acopy of the edited file 604. In one embodiment, the duplicated editedfile 614 is saved, while the edited image 612 of the edited file 604 isreverted to the original image. In one embodiment, the revert results ina reverted file 608 containing an original image 610. In anotherembodiment, it may be the original edited file 604 that is saved, whilethe edited image 612 of the duplicated edited file is reverted to anoriginal image 610. In yet another embodiment, the reverted file 608 mayretain the metadata (e.g., metadata 616) from edits performed prior toreverting. Although system 600 is shown and described as having certainnumbers and types of elements, the present embodiment is not so limited;that is, system 600 may include elements other than those shown, and mayinclude more than one of the elements that are shown.

FIG. 7 is explained in the context in which a user has an edited versionof an image file ready to be saved. As depicted, FIG. 7 is a flowchartillustrating an exemplary method 700 of automatically saving an originalcopy of an image file, in accordance with an embodiment of the presentclaimed subject matter. Method 700 may be implemented in various ways.For example, in one embodiment, method 700 is implemented on a singlecomputing device, while in another embodiment; method 700 is implementedon a network. In yet another embodiment, the files of method 700 areaudio files. Also, although specific steps are disclosed in flowchart700, such steps are exemplary. That is, various embodiments are wellsuited to performing a variety of other additional steps or variationsof the steps recited in flowchart 700. The steps in flowchart 700 mayalso be performed in an order different than presented. At block 702,the process starts.

At block 704, in one embodiment, metadata associated with an image fileis accessed. Metadata associated with an image file may include avariety of information, such as, but not limited to, flags, captions,identifier information, and labels. Also, in another embodiment,metadata that is accessed may be associated with a file that is a videofile. For example, in one embodiment, a plurality of files are accessedon one computing device, while in another embodiment, a plurality offiles are accessed on various computing devices.

Referring back now to FIG. 7, at block 706, whether an original copy ofthe image file exists is determined. Determination of whether anoriginal copy of the image file exists may be implemented in variety ofways. For example, in one embodiment, the determination may beimplemented on a computer, while in another embodiment; thedetermination may be implemented over a network. In yet anotherembodiment, the determination may be implemented on a per user basiswhether on a single computing device, or across a network. For example,in the context of a single computing device (e.g., FIG. 1) it may bedetermined that there is an original copy of an image file for one user,while it may be determined that there is not an original copy of thatsame image file for another user. In addition, this example can bereadily extended to the context of a network of computers.

At block 708 of FIG. 7, in one embodiment, if it is determined thatthere is an original copy of the image file, then an edited version ofthat image file is saved along with an identifier associated with theoriginal copy of the image file. In a network context, an edited versionof an image file may be saved on one or more computing devices that isnot the computing device on which the last edit was performed.

At block 710, in one embodiment, the edited image of the edited imagefile is reverted back to an original image (see FIG. 7B for a breakdownof an exemplary revert process). In another embodiment, in which thefiles of FIG. 7 refer to video files, it is an edited video and itsaccompanying metadata that is reverted to an original copy of that videowithout accompanying metadata. In yet another embodiment in which noadditional process is chosen, the process ends at block 710.

At block 712, in one embodiment, the original copy of the image file isautomatically deleted. An original copy of an image file may bepreconfigured to be automatically deleted based on a user definedspecification. A user defined specification may include, but is notlimited to, the age of an original copy of an image file. For example,in one embodiment, an original copy of an image file may bepreconfigured to be automatically deleted once 3 months has passed sincethe original copy of the image file was first saved along with an editedversion of the image file. In addition, in another embodiment, a userdefined specification may include various preconfigured settings formanagement of the original copy of an image file. For example, in oneembodiment, such preconfigured settings may include allowing the user toselect between preserving originals indefinitely, preserving originalfor a certain number of days chosen by the user, or to not keeporiginals.

At block 714, the process ends for an example of an embodiment in whichan original copy of the image file is determined to exist in block 706.However, for an example of an embodiment in which an original copy ofthe image file is determined not to exist in block 706, in oneembodiment, the process continues from block 706 to block 718, where anoriginal copy of the image file is created. An original copy of a filemay be a duplicate of the original file with no alteration in the file,or in the metadata of the file, except for the file name of the originalcopy of the file. A file name of an original copy of a file may includeidentifier information to link the original copy of a file to itsassociated edited version of a file. In one embodiment, identifierinformation within the file name of an original copy of a file may be aglobally unique identifier.

At block 718, in one embodiment, the original copy of the image file isstored in a location hidden from a user. An original copy of an imagefile may be stored in a directory. In one embodiment, a location hiddenfrom a user may be in an originals directory. An original directory thatis user specific may be a directory in which all original copies offiles for a specific user may be stored. An original directory that iscomputer device specific may be a directory which all original copies offiles for a computer device may be stored. In addition, in oneembodiment, an original directory is located under AppData. There may beonly one path per user as to where original copies of files are storedand restored. Furthermore, in one embodiment, a directory is not beindexed by a library so as to be hidden.

At block 720, in one embodiment, an edited version of the image file,including an identifier associated with the original copy of the imagefile so that the edited version and the original copy of the image filemay be linked, is saved. In a network context, edited files may bestored in various supporting computing devices, while an original copyof the file may be created on the local computing device. For example,in one embodiment, in the context of a network including a personalcomputer 1, 2 and 3, in which a user is working on personal computer Iand is connected via personal computer I to personal computer 2 and 3(assuming both personal computers 2 and 3 do not have an original copyof the image file), the edited version of the image may be stored oncomputing device 2 and/or 3, while the original copy of the image filemay be stored on personal computer 1.

Referring now back to FIG. 7, at block 722, in one embodiment, theedited version of the image file is duplicated. The duplicated editedversion of the image file (also referred to as duplicate edited file)includes the same identifier information as the edited version of theimage file as to allow the duplicate edited file and the original copyof the image file to be linked. In another embodiment, a duplicateedited file is not desired and thus the process ends.

Referring back now to FIG. 7A, at block 724, in one embodiment, theduplicated file (duplicate edited file) is saved.

At block 726, in one embodiment, the edited version of the image file isreverted to an original copy of the image file. Reverting an editedversion of a file may include an reverted image or a video with orwithout metadata from previous edits. For example, in one embodiment,reverting the edited version of the image file results in a revertedimage file in which the reverted image file includes the original imageand the metadata information from previous edits; while in anotherembodiment, reverting the edited version of the image file results in areverted image file in which the image is reverted, but metadatainformation from previous edits are not kept.

At block 728, in one embodiment, the process ends.

In reference now to FIG. 7B, still in the same context as FIG. 7A, FIG.7B is an exemplary flowchart further illustrating the method 710 ofreverting an edited image to an original image as depicted in block 710of FIG. 7A. At block 730, in one embodiment, an original copy of animage file is opened.

Still referring to FIG. 7B, at block 732, the edited image of the editedversion of the image file is deleted, while the metadata information isleft intact, in accordance with an embodiment of the present claimedsubject matter. Metadata information left intact may include captions,flags, and/or labels. In another embodiment in which the referred tofile is a video file, it is the edited video of the edited version ofthe video file that is deleted.

In reference back to FIG. 7B, at block 734, in one embodiment, theoriginal image from the original copy of the image file is copied intothe location in which the edited version of the image was located. In anembodiment, in which the referred to file is a video file, it is theoriginal video of the original copy of the video file that is copiedinto the location in which the edited version of the video was located.Although specific steps are disclosed in flowchart 710, such steps areexemplary. That is, various embodiments are well suited to performing avariety of other additional steps or variations of the steps recited inflowchart 710. The steps in flowchart 710 may also be performed in anorder different than presented.

Referring now to the context in which the method 700 of automaticallysaving an original copy of a file is applied to a video file, FIG. 8 isa flowchart illustrating a method 800 of reverting an edited version ofa video to an original copy of a video. At block 802, in one embodiment,the process starts. Assuming files of method 700 are video files, themethod 800 may take place after all or part of method 700 has takenplace, or the method 800 may replace certain blocks of the method 700.For example, in one embodiment, an original copy of a video file isstored (see block 718 of FIG. 7A) and an edited version of the videofile is stored (see block 720 of FIG. 7A) prior to the process 800 ofFIG. 8 taking place. The method 800 may also take place independent ofmethod 700. Although specific steps are disclosed in flowchart 800, suchsteps are exemplary. That is, various embodiments are well suited toperforming a variety of other additional steps or variations of thesteps recited in flowchart 800. The steps in flowchart 800 may also beperformed in an order different than presented.

Still referring to FIG. 8, at block 804, in one embodiment, an originalcopy of a video file associated with an edited version of the video fileis opened. In another embodiment, in the context of an image file, anoriginal copy of an image file associated with an edited version of animage file is opened.

At block 806, in one embodiment, the edited version of the video isdeleted without deleting a metadata delta and the file name associatedwith the edited version of the video file. In another embodiment, in thecontext of an image file, the edited version of an image is deletedwithout deleting a metadata delta and the file name associated with theedited version of the image file.

At block 810, in one embodiment, a reverted video file is formed. Areverted video file may be formed in several ways. For example, in oneembodiment (depicted by block 812 and 814), the reverted video file isformed by copying, or overwriting, the original copy of the video into alocation in which the edited version of the video was located. Still inthis present exemplary embodiment, the metadata delta and file nameassociated with the edited version of the video file are retained in thereverted file.

At block 816, the process ends. However, in another embodiment in whichfurther processes are desired, the process does not end here. Instead,the process may continue and contain other processes, such as, but notlimited to duplicating an edited version of the video file and/orautomatically deleting the original copy of the file upon the meeting ofa certain criteria, or age.

Referring now to FIG. 9, in the context of an exemplary operatingenvironment, FIG. 9 illustrates an exemplary system for implementing theclaimed subject matter, in accordance with an embodiment of the presentclaimed subject matter. With reference to FIG. 9, an exemplary systemfor implementing the claimed subject matter includes a computing device,such as computing device 900. In its most basic configuration, computingdevice 900 typically includes at least one processing unit 902 andmemory 904. Depending on the exact configuration and type of computingdevice, memory 904 may be volatile (such as RAM), non-volatile (such asROM, flash memory, etc.) or some combination of the two. This most basicconfiguration is illustrated in FIG. 9 by dashed line 906. Additionally,device 900 may also have additional features/functionality. For example,device 900 may also include additional storage (removable and/ornon-removable) including, but not limited to, magnetic or optical disksor tape. Such additional storage is illustrated in FIG. 9 by removablestorage 908 and non-removable storage 910. Computer storage mediaincludes volatile and nonvolatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer readable instructions, data structures, program modules orother data. Memory 904, removable storage 908 and non-removable storage910 are all examples of computer storage media. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can accessed bydevice 900. Any such computer storage media may be part of device 900.

Device 900 may also contain communications connection(s) 912 that allowthe device to communicate with other devices. Communicationsconnection(s) 912 is an example of communication media. Communicationmedia typically embodies computer readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communications media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. The term computerreadable media as used herein includes both storage media andcommunication media.

Device 900 may also have input device(s) 914 such as keyboard, mouse,pen, voice input device, touch input device, etc. Output device(s) 916such as a display, speakers, printer, etc. may also be included. Allthese devices are well known in the art and need not be discussed atlength here.

In the foregoing specification, embodiments have been described withreference to numerous specific details that may vary from implementationto implementation. Thus, the sole and exclusive indicator of what is,and is intended by the applicants to be the claimed subject matter isthe set of claims that issue from this application, in the specific formin which such claims issue, including any subsequent correction. Hence,no limitation, element, property, feature, advantage or attribute thatis not expressly recited in a claim should limit the scope of such claimin any way. The specification and drawings are, accordingly, to beregarded in an illustrative rather than a restrictive sense.

1. A method for automatically saving an original copy of an image file,said method comprising: accessing metadata associated with said imagefile; determining whether an original copy of said image file exists; ifsaid original copy of said image file exists, saving an edited versionof said image file, wherein said edited version of said image filecomprises an identifier, and wherein said identifier is used toassociate said edited version of said image file with said original copyof said image file; and if said original copy of said image file doesnot exist: creating said original copy of said image file; storing saidoriginal copy of said image file, wherein said original copy of saidimage file is stored in a location hidden from a user; and saving saidedited version of said image file, wherein said edited version of saidimage file comprises said identifier.
 2. The method as recited in claim1 further comprising reverting an edited version of said image to anoriginal copy of said image, wherein said reverting comprises: openingsaid original copy of said image file associated with said editedversion of said image file; deleting said edited version of said image;and copying said original copy of said image into a location in whichsaid edited version of said image was located.
 3. The method as recitedin claim 1 further comprising: automatically deleting said original copyof said image file based on a user defined specification.
 4. The methodas recited in claim 1 further comprising: creating a duplicate of saidedited version of said image file; saving said duplicate; and revertingsaid edited version of said image file to said original copy of saidimage file.
 5. The method as recited in claim 1 wherein said determiningwhether said original copy of said image file exists comprises searchingthrough a directory.
 6. The method as recited in claim 1 whereinautomatically saving said original copy of said image file is performedon a per computing device basis across a network.
 7. The method asrecited in claim 1 wherein automatically saving said original copy ofsaid image file is performed on a per user basis on a computing device.8. The method as recited in claim 1 wherein automatically saving saidoriginal copy of said image file is performed on a per user basis acrossa network.
 9. The method as recited in claim 1 wherein a plurality ofedited versions of said image file resulting from a plurality of editscomprises identifiers which point to said original copy of said imagefile.
 10. A computer-usable medium having computer-readable program codeembodied therein for implementing a method for maintaining an originalcopy of an image file across an edit, said method comprising: readingmetadata of an edited version of said image file; detecting for anoriginal copy of said image file, wherein said detecting comprises:examining said edited version of said image file for the presence of anidentifier associated with said original copy of said image file; andchecking for said original copy of said image file associated with saidedited version of said image file; and saving said edited version ofsaid image file, wherein said edited version of said image filecomprises an identifier, and wherein if said original copy of said imagefile was not detected, upon saving said edited version of said imagefile, creating said original copy of said image file in a locationhidden to a user.
 11. The computer-usable medium as recited in claim 10further comprising: automatically deleting said original copy of saidimage file based on age.
 12. The computer-usable medium as recited inclaim 10 wherein said identifier is a globally unique identifier (GUID).13. The computer-usable medium as recited in claim 10 wherein saiddetecting said original copy of said image file comprises searchingthrough a network.
 14. The computer-usable medium as recited in claim 10wherein said original copy of said image file has a file name, andwherein said file name comprises identifier information.
 15. A methodfor reverting an edited version of a video to an original copy of saidvideo, wherein said reverting comprises: opening an original copy of avideo file associated with an edited version of said video file;deleting said edited version of said video, wherein a metadata delta anda file name associated with said edited version of said video file arenot deleted; and forming a reverted file, said reverted file comprising:copying said original copy of said video into a location in which saidedited version of said video was located; and retaining said metadatadelta and said file name associated with said edited version of saidvideo file, wherein said metadata delta and said file name are retainedin said reverted file.
 16. The method as recited in claim 15 whereinsaid method is implemented across a network of computing devices. 17.The method as recited in claim 15 wherein said original copy of saidvideo file is stored in a directory.
 18. The method as recited in claim15 wherein said original copy of said video file is not indexed by alibrary.
 19. The method as recited in claim 15 wherein a plurality ofedited versions of said video file resulting from a plurality of editscomprises identifiers which point to said original copy of said videofile.
 20. A computer-readable medium having computer-executableinstructions for performing the steps recited in claim 15.